
/*
	(c) Galustyan Sergey 2009
*/

#pragma once 
#include "Lib.h"
#include "Spheres.h"

namespace TestTask
{
	class OclTaskSolver
	{
		public:

				 OclTaskSolver( PSphereRender s1, PSphereRender s2 ):s1(s1),s2(s2){};		
	
			void specialRender( RenderPackage& rp ){
				std::swap( s1, s2 );
				computeOcl( rp, 1 );
				std::swap( s1, s2 );
				computeOcl( rp, 2 );
			}

			void getStat( Text& text )
			{
				text.insert(text.end(),stat.begin(),stat.end());;
			}
	
		protected:

			virtual void  computeOcl( RenderPackage& rp, int sphereNumber ) = 0;
			
			Text		   stat;
			PSphereRender  s1,s2;
	};
}
